﻿namespace MicroCloud.Authorization
{
    #region "描述把当前功能(Controller或者Action)封装为一个模块(Module)节点"
    /// <summary>
    /// 描述把当前功能(Controller或者Action)封装为一个模块(Module)节点，可以设置模块依赖的其他功能，模块的位置信息等
    /// 此特性用于系统初始化时自动提取模块树信息Module
    /// </summary>
    [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
    public class ModuleInfoAttribute : Attribute
    {
        #region "属性"
        #region "获取或设置 模块名称"
        /// <summary>
        /// 获取或设置 模块名称，为空则取功能名称
        /// </summary>
        public string Name { get; set; }
        #endregion
        #region "获取或设置 模块代码"
        /// <summary>
        /// 获取或设置 模块代码，为空则取功能Action名
        /// </summary>
        public string Code { get; set; }
        #endregion
        #region "获取或设置 顺序编号"
        /// <summary>
        /// 获取或设置 顺序编号
        /// </summary>
        public double OrderNo { get; set; }
        #endregion
        #region "获取或设置 模块位置"
        /// <summary>
        /// 获取或设置 模块位置
        /// <para>父级模块，模块在树节点的位置，默认取所在类的位置，需要在命名空间与当前类之间加模块，才设置此值。</para>
        /// </summary>
        public string Position { get; set; }
        #endregion
        #region "获取或设置 父级位置模块名称"
        /// <summary>
        /// 获取或设置 父级位置模块名称
        /// <para>需要在命名空间与当前类之间加模块，才设置此值。</para>
        /// </summary>
        public string PositionName { get; set; }
        #endregion

        #endregion

    }
    #endregion

}
